ADVANCED DEMUFFIN VER 1.1 A NEW VERSION OF THAT TERRIBLE PROGRAM DEMUFFIN. WRITTEN BY: THE STACK DOCUMENTATION BY: THE INSPECTOR COPYRIGHT FEBRUARY 8, 1983 CORRUPT COMPUTING WHAT IS ADVANCED DEMUFFIN? ADVANCED DE MUFFIN WILL ALLOW YOU TO COPY A DISK THAT IS IN NON-STANDARD FOR MAT TO DOS 3.3 FORMAT. IT WILL ALSO ALLOW YOU TO COPY FROM DOS 3.3 TO DOS 3.3. TO USE ADVANCED DEMUFFIN YOU SHOULD BE FAMILIAR WITH "THE BASIC OF KRAKING BY KRAKOWICZ". (THESE TIPS A RE AVAILABLE ON APPLE TREK SYSTEMS.) YOU SHOULD ALSO HAVE A TRAC K-SECTOR EDITOR LIKE THE INSPECTOR, DISK FIXER, NIBBLES AWAY II, OR DISK DRIVER. TO CRACK SOME PROGRAMS A INTEGER CARD O R CRACK-ROM IS NECESSARY. ADVANCED DEMUFFIN WILL ONLY WORK ON SOM E PROGRAMS. USES OF ADVANCED DEMUFFIN: 1) ADVANCED DEMUFFIN IS THE ONLY PROGRA M THAT I KNOW OF, THAT WILL ALLOW YOU TO COPY SELECTED TRACKS AND SECTORS FROM ONE DISK TO ANOTHER. 2) ADVANCED DEMUFFIN'S MAIN PURPOSE WAS TO COPY DISKS FROM A NON-STANDARD DOS TO DOS 3.3. BY COPYING A DISK FROM A NON-STANDARD FORMAT TO DOS 3.3 YOU WILL NOT COMPLETELY UN-PROTECT A DISK. YOU WILL MERELY COPY THE PROGRA M FROM THEIR DOS TO DOS 3.3, ANY CHECKSUMS, NIBBLE COUNTS, ETC. THAT WERE IN THE PROGRAM WILL STILL BE THERE. TO COMPLETE THE U N-PROTECTION PROCESS ON MOST DISKS YOU WILL HAVE TO CHANGE A BY TE OR TWO, TO TAKE OUT THE "CHECKS". OCCASIONALLY YOU WILL FIND A DISK THAT WILL NOT REQUIRE ANY CHANGES. THIS WILL MOST LI KELY WILL ONLY HAPPEN WITH A OLD DISK, AND/OR A STUPID COMPANY. DIFFERENCES BETWEEN DEMUFFIN AND ADVANC ED DEMUFFIN: DEMUFFIN CAN ONLY COPY A DISK IF IT HAS A DIRECTORY. BECAUSE ADVANCED DEMUFFIN COPIES THE DISK, REGARDLESS OF WHAT DATA IS ON IT, YOU WILL NOT HAVE THIS PROBLEM. HERE IS A SUMMARY OF ADVANCED DEMUFFIN' S OPTIONS. 1) CONVERT DISK: DOES THE ACTUAL CO PYING OF THE DISK. ALLOWS YOU TO CHANGE DIFFERENT PARAMETE RS, LIKE START TRACK, START SECTOR, ETC... 2) LOAD NEW RWTS MODULE: WILL LOAD AN RWTS FOR THE SOURCE DISK (THE DISK YOU ARE CONVERTIN G TO DOS 3.3) FROM A DOS 3.3 DISK. 3) LOAD NEW IOB MODULE: WILL LOAD A NEW INTERFACE FOR THE SOURCE DISK'S RWTS FROM A DOS 3. 3 DISK. 4) FORMAT TARGET DISK: INITIALIZING A DISK IN EITHER DRIVE, IN DOS 3.3 FORMAT. 5) EXIT TO MONITOR: GEE, I WONDER WHAT THIS DOES? (IF YOU DON'T KNOW, YOU PROBABLY SHOULD NOT BE USING ADVANCED DEMUFFIN.) TO USE THE OPTIONS, MOVE THE "LIGHT BAR " WITH THE ARROW KEYS. THE LEFT ARROW MOVES THE BAR UP AND THE RIGHT ARROW MOVES THE BAR DOWN. TO EXECUTE AN OPTION, JUST MOVE THE BAR TO IT AND PRESS RETURN. THE CONVERT DISK OPTION WILL DO THE ACT UAL CONVERTING OF THE DISK. TO USE THE CONVERT OPTION MOVE T HE LIGHT BAR TO "CONVERT DISK" AND PRESS RETURN. WHEN YOU ACCES S THE CONVERT OPTION, MAKE SURE THAT YOU ALREADY HAVE THE SOURCE R WTS IN MEMORY AND HAVE THE IOB MODULE POINTING TO IT. (THE IOB MOD ULE NORMALLY POINTS TO $BD00.) ADVANCED DEMUFFIN WILL THEN ASK YOU: "C HANGE DEFAULT VALUES?" IF YOU WANT TO COPY FROM TRACK $0, SECTOR $00 TO TRACK $22, SECTOR $0F, BY 1, WITH 1 RETRY AND TO DRIVE TW O, THEN ANSWER "N" FOR NO TO THIS QUESTION. IF YOU ANSWER "Y" FO R YES THEN ADVANCED DEMUFFIN WILL ASK YOU: "SECTORS PER TR ACK? (13/16)" THE FIRST DIGIT OF HAS TO BE A 1. YOU SHOULD THE N ENTER A "3" FOR A THIRTEEN SECTOR DISK (DOS 3.2) OR A "6" FOR A SIXTEEN SECTOR DISK (DOS 3.3). IF YOU DON'T KNOW IF THE DI SK HAS 13 OR 16 SECTORS TRY TO CONVERT IT WITH 16 SECTORS, AND IF YOU GET ERRORS ON ALL SECTORS PAST SECTOR "C", THEN IT IS MOS T PROBABLY A 13 SECTOR DISK. ALL THE OPTION "SECTORS PER TRACK" DOES IS TELL ADVANCED DEMUFFIN AT WHAT SECTOR TO CHANGE TO A NEW TRACK . THEN ADVANCED DEMUFFIN WILL ASK YOU TO ENTER THE "START TRACK", ENTER THE TRACK (NORMALLY $0) IN HEX. YOU MAY ENTER HALF TRACKS, JUST TYPE A "." AFTER YOU ENTER THE TRA CK AND ADVANCED DEMUFFIN WILL AUTOMATICALLY TACK A ".5" ON THE E ND OF THE TRACK. THEN ENTER THE START SECTOR NUMBER IN H EX WHEN ADVANCED DEMUFFIN PROMPTS YOU TO. ADVANCED DEMUFFIN WILL THEN ASK YOU TO ENTER THE END TRACK AND SECTOR. NOTE: THE START TRACK AND SECTOR MUST C OME BEFORE THE END TRACK AND SECTOR. EX: START TRACK: $00 START TR ACK: $22 START SECTOR: $00 START SE CTOR: $0F END TRACK: $22 END TRAC K: $00 END SECTOR : $0F END SECT OR: $00 THIS IS FINE. BUT THIS IS ILLEGAL. IF YOU ENTER IT THIS WAY ADVANCED DEMUFFIN WILL GIV E YOU THE MESSAGE: "BACKWAR DS COPYING NOT SUPPORTED!" AFTER ENTERING THE TRACK AND SECTORS, A DVANCED DEMUFFIN WILL ASK YOU WHAT INCREMENT WHAT YOU WANT TO GO BY. (USUALLY 1) ANYBODY THAT WANTS TO CHANGE THE INCREMENT (TO ANYTHING OTHER THAN ONE), SHOULD ALREADY KNOW WHAT INCREMENT IS, SO I WON'T EXPLAIN IT. YOU WILL THEN BE ASKED "MAX # OF RETRIE S?". YOU SHOULD THEN ENTER THE NUMBER OF TIMES (USUALLY 1) YOU WAN T ADVANCED DEMUFFIN TO TRY TO READ/WRITE A SECTOR IF IT GETS AN ER ROR ON IT. THEN YOU SHOULD ENTER THE DRIVE TO BE C OPIED TO. NOTE: THE SOURCE DRIVE MUST ALWAYS BE D RIVE 1 BECAUSE OF LIMITATIONS OF THE IOB MODULE. IF YOU SPECIFIED TWO DRIVES THEN ADVANC ED DEMUFFIN WILL PROMPT YOU TO: "INSERT DISKS AND PRESS RETURN" YOU SHOULD THEN INSERT THE SOURCE IN DR IVE 1 AND THE TARGET IN DRIVE 2 AND PRESS RETURN. ADVANCED DEM UFFIN WILL THE PROCEED TO CONVERT THE DISK TO DOS 3.3. IF YOU SPECIFIED ONE DRIVE, ADVANCED DE MUFFIN WILL ASK YOU TO: "INSERT SOURCE DISK AND PRESS RETURN" YOU SHOULD THEN INSERT THE SOURCE DISK AND PRESS RETURN. ADVANCED DEMUFFIN WILL THEN READ 7 TRAC KS OFF SOURCE AND ASK YOU TO INSERT THE TARGET, YOU SHOULD THEN I NSERT THE TARGET, ADVANCED DEMUFFIN WILL THEN WRITE THOSE 7 TRACKS . IT WILL TAKE 5 PASSES TO COPY THE WHOLE DISK. AFTER THE DISK IS COPIED, ADVANCED DEMU FFIN WILL DISPLAY THE MESSAGE "PRESS ANY KEY TO CONTINUE". I F YOU PRESS 1-7 ADVANCED DEMUFFIN WILL THEN DO A "SCREEN DUMP TO PRINTER" IN THE SLOT OF THE NUMBER THAT YOU PRESSED. ANY OTHER KEY WILL RETURN YOU TO THE MAIN MENU. THE DISPLAY ADVANCED DEMUFFIN 1.1 - COPYRIGHT 198 3 WRITTEN BY THE STACK - CORRUPT COMPUTIN G ======================================= = TRK: +.5: 0123456789ABCDEF0123456789ABCDEF012 3 SC0: SC1: SC2: SC3: SC4: SC5: SC6: SC7: SC8: SC9: SCA: SCB: SCC: SCD: SCE: SCF: ======================================= = 16 SC $00,$00 TO $22,$0F BY 1.0 TO DRV 2 THE TOP 2 LINES ARE JUST THE TITLE LINE S. THEN COMES THE STATUS DISPLAY. THE FIRST TWO LINES CONTAIN TH E TRACK LIST. EACH TRACK NUMBER IS DISPLAYED HERE, STARTING AT $ 00 AND ENDING AT $23 (NOTE THAT THE ALL VALUES ARE DISPLAYED IN HE X FORMAT, NOT DECIMAL). ALTHOUGH THE APPLE II DISK USUALLY USES ONLY TRACKS $00-$22, OCCASIONALLY SOME SOFTWARE USES TRACK $ 23. FOR THIS REASON, TRACK $23 HAS BEEN INCLUDED. THE FIRST LINE OF THE STATUS DISPLAY (MARKED WITH "TRK" ON THE LEFT SIDE OF THE SCREEN) IS FOR NORMAL TRACKS. THE NEXT LINE IS FOR HA LF TRACKS (MARKED WITH A "+.5"). THE NEXT LINE IS THE ACTUAL TR ACK NUMBERS. AFTER THIS IS A "MAP" OF THE DISK. AFTER THE DISK MAP THERE IS ANOTHER DIS PLAY. IT SHOWS WHAT FORMAT THE DISK IS IN (13 OR 16 SECTOR) , THEN IT SHOWS THE START TRACK AND SECTOR, AND THE END TRACK AND SECTOR. THE NEXT THING ON THE STATUS LINE IS THE TRACK INCREME NT. THE LAST THING IS THE DRIVE TO COPY TO. THERE ARE A NUMBER OF STATUS CODES THAT APPEAR IN THESE DISPLAYS. AN INVERSE "R" ON THE DISK MAP SHOWS A SECTOR BEING READ IN. AN INVERSE "W" IN THE DISK MAP SHOWS A SEC TOR BEING WRITTEN OUT TO DISK. AN INVERSE "R" OR "W" ON TRACK L IST SHOWS WHICH TRACK IS BEING READ OR WRITTEN. A "." ON EITHER THE DISK MAP OR THE TRACK DISPLAY SHOWS THE SECTOR OR TRACK COPIE D CORRECTLY. ERROR CODES AND MESSAGES: "R" ON THE TRACK LIST - SOME SECTORS ON THE TRACK COULD NOT BE READ. "W" ON THE TRACK LIST - ADVANCED DEMUFF IN COULD NOT WRITE OUT SOME SECTORS ON THAT TRACK. "R" ON THE DISK MAP --- THAT SECTOR COU LD NOT BE READ. "W" ON THE DISK MAP --- THAT SECTOR COU LD NOT BE WRITTEN. WHEN ADVANCED DEMUFFIN DETECTS THAT THE TARGET DISK IS "WRITE PROTECTED", IT WILL REPLACE THE TITLE L INES WITH THIS MESSAGE: DISK WRITE-PROTECTED! PRESS "S" TO START OVER, "C" TO CONTINU E YOU SHOULD THEN REMOVE THE WRITE PROTEC T TAB OR INSERT ANOTHER DISK. IF YOU WANT ADVANCED DEMUFFIN TO START COPYING FROM THE START SECTOR AND TRACK PRESS 'S'. IF YO U WANT IT TO CONTINUE COPYING FROM WHERE IT IS PRESS 'C'. WHAT IS A RWTS MODULE? A RWTS MODULE I S THE RWTS WILL BE USED TO COPY THE SOURCE DISK. WHEN YOU ACCESS THE "LOAD NEW RWTS MODULE" ADVANCED DEMUFFIN WILL PROMPT YOU TO "P AGE TO LOAD AT (MUST BE A 2 DIGIT HEX NUMBER):" YOU MUST THEN EN TER THE PAGE NUMBER OF THE ADDRESS THAT YOU WANT TO LOAD RWTS AT. I.E. $B8 WOULD LOAD IT AT $B800. ADVANCED DEMUFFIN WILL ONLY ALL OW YOU TO LOAD THE RWTS BETWEEN $20 AND $BF. (USUALLY THE RWTS IS LOADED AT $B800.) ADVANCED DEMUFFIN WILL THEN ASK YOU TO "PLEASE TYPE THE NAME OF THE FILE TO LOAD". YOU SHOULD THEN ENT ER THE FILE NAME. WHEN YOU PRESS RETURN, ADVANCED DEMUFFIN WIL L ASK YOU WHAT DRIVE TO LOAD IT FROM. YOU SHOULD THEN ENTER A 1 OR A 2. POSSIBLE ERRORS: 1) NO SUCH BINARY FILE EXISTS! THIS MESSAGE IS THE SAME AS A "FILE NOT FOUND" ERROR . 2) PLEASE INSERT THE CORRECT D ISK CORRECTLY IN CORRECT THE DRIVE AND PR ESS THIS MEANS THAT ADVANCED DE MUFFIN HAD PROBLEMS READING YOUR RWTS. IOB MODULES: TO LOAD AN IOB MODULE, AL L YOU HAVE TO ENTER THE FILE NAME AND THE DRIVE. WHAT IS AN IO B MODULE? AN IOB MODULE IS AN INTERFACE FOR THE SOURCE RWTS. A DVANCED DEMUFFIN USES THE IOB MODULE TO SET UP THE IOB TABLE AND JUMP TO RWTS. THE IOB MODULE IS STORED FROM $1400-$14FB. WHE N ADVANCED DEMUFFIN LOADS IN A IOB MODULE, IT READS THE FIRST SEC TOR OF THE FILE OFF THE TRACK-SECTOR LIST AND STORES IT AT $13F C-$14FB. WHEN ADVANCED DEMUFFIN WANTS TO READ A SECTOR IT JSRS TO THE IOB MODULE WITH THE PHASE NUMBER, SECTOR NUMBER, AND TH E PAGE NUMBER STORED IN THE A, Y AND X REGISTERS RESPECTIVELY. SINCE THE SOURCE DRIVE ALWAYS HAS TO BE DRIVE ONE, ADVANCED DE MUFFIN CAN MAKE THE IOB MODULE VERY COMPACT. AFTER IT GETS THE PAGE,TRACK AND SECTOR ADVANCED DEMUFFIN SETS UP THE IOB FOR R WTS USING THIS INFORMATION, AND JMPS TO RWTS. (IT JUM PS INSTEAD OF JSRING, BECAUSE IT LETS THE RWTS DO THE RTS.) HERE IS A LIST OF THE IOB MODULE THAT IS BUILT IN TO ADVANCED DEM UFFIN: *1400L 1400- 4A LSR ; CONV ERT PHASE # TO TRACK # 1401- 8D 22 0F STA $0F22 ; STOR E TRACK NUMBER 1404- 8C 23 0F STY $0F23 ; STOR E SECTOR NUMBER 1407- 8D 27 0F STX $0F27 ; STOR E PAGE NUMBER 140A- A9 01 LDA #$01 140C- 8D 20 0F STA $0F20 ; STOR E THE DRIVE NUMBER 140F- 8D 2A 0F STA $0F2A ; STOR E THE READ CODE 1412- A9 0F LDA #$0F ; WITH HIGH BYTE OF IOB 1414- A0 1E LDY #$1E ; WITH LOW BYTE OF IOB 1416- 4C 00 BD JMP $BD00 ; GOTO RWTS 1419- 00 BRK 141A- 00 BRK UNLESS YOU WANT TO READ HALF TRACKS, YO U NEED THE LSR TO CONVERT THE PHASES TO TRACKS. (IF YOU WANT TO R EAD HALF TRACKS, MAKE SURE THE SOURCE RWTS CAN READ HALF TRACKS!) HERE IS A LIST OF REASONS THAT ONE MIGH T NEED A DIFFERENT IOB MODULE: 1) IF THE SOURCE RWTS USES THE SOME OF THE SAME ZERO PAGE LOCATIONS AS ADVANCED DEMUFFIN, T HE IOB MODULE WOULD HAVE TO SWAP THOSE OUT BEFORE THE READ , AND SWAP THEM BACK IN AFTER THE READ. 2) THE SOURCE RWTS RESIDES WITHIN TH E TEXT WINDOW, OR OVER PART OF ADVANCED DEMUFFIN. YOU W OULD THEN HAVE TO WRITE AN IOB MODULE TO SWAP ADVANCED DEMUF FIN OR THE TEXT SCREEN OUT AND THE RWTS IN. THEN YOU JSR T O THE RWTS. WHEN THE RWTS DOES THE RTS, IT WILL RETURN TO T HE IOB MODULE. THE IOB MODULE CAN THEN SWAP THE TEXT SCR EEN OR ADVANCED DEMUFFIN BACK IN. 3) THE RWTS'S IOB MODULE IS DIFFEREN T FROM A NORMAL IOB. YOU SHOULD MAKE SURE THAT YOU JSR TO TH E RWTS INSTEAD OF JMPING TO IT, SO THAT IT CAN MOVE THE THINGS B ACK TO THEIR RIGHT PLACE. YOU MAY ALSO NEED TO MODIFY THE IOB MOD ULE TO READ HALF TRACKS. OR IF THE RWTS IS IN A DIFFERENT PLACE, YOU WILL HAVE TO CHANGE THE IOB MODULE. THERE ARE TWO WAYS TO DEMUFFIN A DISK; THE WAY YOU HAVE TO DO IT WITH DEMUFFIN AND THE WAY THAT ADVANCED DEMUFFIN ALLOWS YOU TO DO IT. I WILL ONLY DISCUSS THE SECOND MET HOD. (FOR ADDITIONAL INFORMATION ON DEMUFFIN, SEE PIRATES HA RBOR CRACKING TIPS.) MISCELLANEOUS FEATURES: TO RETURN TO THE MENU FROM ANY POINT JU ST PRESS "ESC". YOU CAN CHANGE THE STARTING AND ENDING PAGE NUMBER OF THE BUFFER BY CHANGING LOCATIONS $1CF0 AND $1CF1 ( NORMALLY A $20 AND $70 ARE STORED IN THESE LOCATIONS). WHEN YOU C HANGE THESE, MAKE SURE THAT THE START PAGE IS STORED IN $1CF0 AND THE END PAGE IS STORED IN $1CF1. IF YOU STORE THESE NUMBERS I N REVERSE THEN ADVANCED DEMUFFIN WILL ONLY USE A ONE PAGE BUFFE R. THIS IS EXPLAINED IN FULL IN THE ADVANCED DEMUFFIN TECH-NOTE S. DIFFERENCES BETWEEN ADVANCED DEMUFFIN V ER 1.0 AND VER 1.1: ALL OPTIONS WORK INCLUDING LOAD RWTS MODULE & LOAD IOB MODULE. DOES NOT REQUIRE A DOS OR AN RWTS TO FUNCTION PROPERLY, HOWEVER, IF YOU DON'T HAVE AN RWTS IN MEMORY YOU EITHER HAVE TO LOAD ONE WITH 'LOAD NEW RWTS MOD ULE' OR CHANGE THE JMP IN THE IOB MODULE TO POINT TO $1A00 IN STEAD OF $BD00. DEFAULT IS TO READ IN $7000 BYTES PE R PASS MEANING THAT THE ENTIRE DISK CAN BE CONVERTED IN 5 P ASSES (ESPECIALLY USEFUL WITH ONLY ONE DRIVE.) THE BUFFER START, END AND (MEANING S IZE, ALSO) CAN EASILY BE CHANGED BY CHANGING LOCATIONS $13F9 (START PAGE OF BUFFER) AND $13FA (END PAGE OF BUFFER.) TH E DEFAULTS FOR THESE LOCATIONS ARE $20 AND $90, RESPECTI VELY GIVING A BUFFER SIZE OF $7000 BYTES AS MENTIONED ABOVE. CTRL-Y AND & WILL GET YOU BACK INTO THE PROGRAM IN CASE OF ACCIDENTAL OR PURPOSEFUL EXIT. WILL DO A SCREEN DUMP TO THE PRINTER AT THE 'PRESS ANY KEY TO CONTINUE' MESSAGE THAT YOU GET AFTE R THE CONVERSION IS DONE. AT THIS TIME, TYPING A NUMBER FROM 1-7 WILL DO A SCREEN DUMP TO THE SPECIFIED SLOT IN WHICH A PR INTER IS RECOMMENDED TO BE IN. BEFORE PRINTING, HOWEVER, THE PROGRAM WILL PRINT A "CTRL-I80N" SO THAT THE OUTPUT WILL NOT GO TO THE SCREEN DURING PRINT CAUSING THE SCREEN TO SCROLL UP AND THE PRINTOUT TO BE ALL MESSED UP, ETC. ALSO, EV EN THOUGH THE SCREEN WILL SAY "PRESS ANY KEY TO CONTINUE" AT THE TOP, THE PRINTOUT WON'T AS THIS IS THE ONE AND ONLY M ODIFICATION THE SCREEN DUMP ROUTINE MAKES TO THE TEXT AS I T GOES TO THE PRINTER. NOTE ALSO THAT 1-7 MAY BE TYPED DUR ING COPY AND IT WILL BE REMEMBERED UNTIL THE CONVERSION IS COMPLETED. ANY OTHER KEY (BESIDES 1-7 OR ESC) WILL CLEAR THE 1-7 KEY THOUGH. (ESC AT ANY TIME SHOULD BRING YOU BACK TO T HE MAIN MENU.) THE LEFT-ARROW KEY <- WORKS AS A BAC KSPACE-DELETE IN INPUTS ALLOWING MULTIPLE CHARACTERS SUCH A S TRACK NUMBER INPUTTING. THE MAXIMUM NUMBER OF RETRIES PER SE CTOR MAY BE SPECIFIED IF YOU DECIDE TO CHANGE THE DEFAULT VA LUES. THIS NUMBER MAY BE FROM 0 (ONLY ONE TRY - NO RETRIES) TO $F (15) IN WHICH IT WOULD IT TRY 15 MORE TIMES TO READ IN AN UNSUCCESSFULLY READ SECTOR UNTIL IT GOT IT. THE DEFAUL T FOR THIS, ALTHOUGH THE PROGRAM DOES NOT MENTION IT ANYWHER E, IS ONE RETRY. IF BACKWARDS COPYING IS ATTEMPTED, Y OU WILL BE GIVEN AN ERROR MESSAGE INSTEAD OF IT INCORRECTLY C OPYING ONLY THE FIRST SECTOR. YOU DON'T HAVE TO DO THE $1318 MODIF ICATION - THE IOB MODULE (WHICH IS NOW AT $1400 INSTEAD OF $ 1300) NOW POINTS TO $BD00 INSTEAD OF $1900 OR WHATEVER. IT ASKS FOR THE "INCREMENT" WHEN CHA NGING THE DEFAULT VALUES INSTEAD OF ASKING "BY". IT DOES NOT PRINT THROUGH DOS.